package cacy.leetcode.string;


/**
 * @author 凯齐
 * @date 2025-02-26 19:16
 * @description
 * 某公司门禁密码使用动态口令技术。
 * 初始密码为字符串 password，密码更新均遵循以下步骤：
 *     设定一个正整数目标值 target
 *     将 password 前 target 个字符按原顺序移动至字符串末尾
 * 请返回更新后的密码字符串。
 *
 * 示例 1：
 * 输入: password = "s3cur1tyC0d3", target = 4
 * 输出: "r1tyC0d3s3cu"
 *
 * 示例 2：
 * 输入: password = "lrloseumgh", target = 6
 * 输出: "umghlrlose"
 *
 * 提示：
 *     1 <= target < password.length <= 10000
 *
 */

class SolutionString03A {
    public String dynamicPassword(String password, int target) {
        return password.substring(target) + password.substring(0,target);
    }
}

class SolutionString03B {
    public String dynamicPassword(String password, int target) {
        StringBuilder res = new StringBuilder();
        for(int i = target; i < target + password.length(); i++)
            res.append(password.charAt(i % password.length()));
        return res.toString();
    }
}

public class String03 {
    public static void main(String[] args) {
        String res = new SolutionString03B().dynamicPassword("January", 3);
        System.out.println(res);
    }
}
